from django.http import HttpResponse, HttpResponseNotFound


def page1(request):
    print('Page被调用！')
    return HttpResponse('这是page1页面')


def page2(request):
    html = """
        <html>
            <head>
                <title>django</title>
            </head>
            <body style='background-color:red;'>
                <h1>你好，django !</h1>
                
            </body>
        </html>
    
    """

    return HttpResponse(html)


def home_page(request):
    return HttpResponse('这是首页')


def page_year(request, year):
    return HttpResponse('参数是:%s' % year)


def birthday(request, year, month, day):
    return HttpResponse('生日为:%s年%s月%s日' % (year, month, day))


def person(request, name, age):
    html = '<h1>姓名:' + name + '</h1>'
    html += '<h1>年龄:' + age + '</h1>'
    return HttpResponse(html)


def sub(request, a, b):
    return HttpResponse('结果:%d' % (int(a) - int(b)))


def add(request, a, b):
    return HttpResponse('结果:%d' % (int(a) + int(b)))


def test_request(request):
    print('request.url', request.path)
    print('request.method', request.method)
    return HttpResponse('请求OK!')


def test_request2(request):
    # 重定向到 /page2
    from django.http import HttpResponseRedirect
    return HttpResponseRedirect('http://www.jd.com/')

    # return HttpResponseNotFound('404 NOT FOUND')


def test_get(request):
    # value_a = request.GET['a']
    value_a = request.GET.get('a', '没有值')
    print('value_a=', value_a)
    return HttpResponse('get请求成功，a=' + value_a)


def birthday2(request):
    if request.method == 'GET':
        year = request.GET.get('year', '0000')
        month = request.GET.get('month', '00')
        day = request.GET.get('day', '00')
        return HttpResponse('您的生日是:%s年%s月%s日' % (year, month, day))


def search(request):
    html = """
        <html>
            <head>
                <title>django</title>
            </head>
            <body style='background-color:red;'>
                <h1>搜索</h1>
                <form method="POST" action="/search">
                    <input name="sss" type="text">
                    <input type="submit">
                </form>
            </body>
        </html>
    """
    if request.method == 'GET':
        return HttpResponse(html)
    elif request.method == 'POST':
        sss = request.POST['sss']
        return HttpResponse('您正在POST提交,sss=' + sss)
    else:
        return HttpResponse('其它方式提交')


def shebao(request):
    html_head = """
        
    <!DOCTYPE html>
    <html>
    <head>
    <title>社保计算器.md</title>
    <meta http-equiv="Content-type" content="text/html;charset=UTF-8">
    
    <style>
    /*---------------------------------------------------------------------------------------------
     *  Copyright (c) Microsoft Corporation. All rights reserved.
     *  Licensed under the MIT License. See License.txt in the project root for license information.
     *--------------------------------------------------------------------------------------------*/
    
    body {
        font-family: "Segoe WPC", "Segoe UI", "SFUIText-Light", "HelveticaNeue-Light", sans-serif, "Droid Sans Fallback";
        font-size: 14px;
        padding: 0 12px;
        line-height: 22px;
        word-wrap: break-word;
    }
    
    #code-csp-warning {
        position: fixed;
        top: 0;
        right: 0;
        color: white;
        margin: 16px;
        text-align: center;
        font-size: 12px;
        font-family: sans-serif;
        background-color:#444444;
        cursor: pointer;
        padding: 6px;
        box-shadow: 1px 1px 1px rgba(0,0,0,.25);
    }
    
    #code-csp-warning:hover {
        text-decoration: none;
        background-color:#007acc;
        box-shadow: 2px 2px 2px rgba(0,0,0,.25);
    }
    
    
    body.scrollBeyondLastLine {
        margin-bottom: calc(100vh - 22px);
    }
    
    body.showEditorSelection .code-line {
        position: relative;
    }
    
    body.showEditorSelection .code-active-line:before,
    body.showEditorSelection .code-line:hover:before {
        content: "";
        display: block;
        position: absolute;
        top: 0;
        left: -12px;
        height: 100%;
    }
    
    body.showEditorSelection li.code-active-line:before,
    body.showEditorSelection li.code-line:hover:before {
        left: -30px;
    }
    
    .vscode-light.showEditorSelection .code-active-line:before {
        border-left: 3px solid rgba(0, 0, 0, 0.15);
    }
    
    .vscode-light.showEditorSelection .code-line:hover:before {
        border-left: 3px solid rgba(0, 0, 0, 0.40);
    }
    
    .vscode-dark.showEditorSelection .code-active-line:before {
        border-left: 3px solid rgba(255, 255, 255, 0.4);
    }
    
    .vscode-dark.showEditorSelection .code-line:hover:before {
        border-left: 3px solid rgba(255, 255, 255, 0.60);
    }
    
    .vscode-high-contrast.showEditorSelection .code-active-line:before {
        border-left: 3px solid rgba(255, 160, 0, 0.7);
    }
    
    .vscode-high-contrast.showEditorSelection .code-line:hover:before {
        border-left: 3px solid rgba(255, 160, 0, 1);
    }
    
    img {
        max-width: 100%;
        max-height: 100%;
    }
    
    a {
        color: #4080D0;
        text-decoration: none;
    }
    
    a:focus,
    input:focus,
    select:focus,
    textarea:focus {
        outline: 1px solid -webkit-focus-ring-color;
        outline-offset: -1px;
    }
    
    hr {
        border: 0;
        height: 2px;
        border-bottom: 2px solid;
    }
    
    h1 {
        padding-bottom: 0.3em;
        line-height: 1.2;
        border-bottom-width: 1px;
        border-bottom-style: solid;
    }
    
    h1, h2, h3 {
        font-weight: normal;
    }
    
    h1 code,
    h2 code,
    h3 code,
    h4 code,
    h5 code,
    h6 code {
        font-size: inherit;
        line-height: auto;
    }
    
    a:hover {
        color: #4080D0;
        text-decoration: underline;
    }
    
    table {
        border-collapse: collapse;
    }
    
    table > thead > tr > th {
        text-align: left;
        border-bottom: 1px solid;
    }
    
    table > thead > tr > th,
    table > thead > tr > td,
    table > tbody > tr > th,
    table > tbody > tr > td {
        padding: 5px 10px;
    }
    
    table > tbody > tr + tr > td {
        border-top: 1px solid;
    }
    
    blockquote {
        margin: 0 7px 0 5px;
        padding: 0 16px 0 10px;
        border-left: 5px solid;
    }
    
    code {
        font-family: Menlo, Monaco, Consolas, "Droid Sans Mono", "Courier New", monospace, "Droid Sans Fallback";
        font-size: 14px;
        line-height: 19px;
    }
    
    body.wordWrap pre {
        white-space: pre-wrap;
    }
    
    .mac code {
        font-size: 12px;
        line-height: 18px;
    }
    
    pre:not(.hljs),
    pre.hljs code > div {
        padding: 16px;
        border-radius: 3px;
        overflow: auto;
    }
    
    /** Theming */
    
    .vscode-light,
    .vscode-light pre code {
        color: rgb(30, 30, 30);
    }
    
    .vscode-dark,
    .vscode-dark pre code {
        color: #DDD;
    }
    
    .vscode-high-contrast,
    .vscode-high-contrast pre code {
        color: white;
    }
    
    .vscode-light code {
        color: #A31515;
    }
    
    .vscode-dark code {
        color: #D7BA7D;
    }
    
    .vscode-light pre:not(.hljs),
    .vscode-light code > div {
        background-color: rgba(220, 220, 220, 0.4);
    }
    
    .vscode-dark pre:not(.hljs),
    .vscode-dark code > div {
        background-color: rgba(10, 10, 10, 0.4);
    }
    
    .vscode-high-contrast pre:not(.hljs),
    .vscode-high-contrast code > div {
        background-color: rgb(0, 0, 0);
    }
    
    .vscode-high-contrast h1 {
        border-color: rgb(0, 0, 0);
    }
    
    .vscode-light table > thead > tr > th {
        border-color: rgba(0, 0, 0, 0.69);
    }
    
    .vscode-dark table > thead > tr > th {
        border-color: rgba(255, 255, 255, 0.69);
    }
    
    .vscode-light h1,
    .vscode-light hr,
    .vscode-light table > tbody > tr + tr > td {
        border-color: rgba(0, 0, 0, 0.18);
    }
    
    .vscode-dark h1,
    .vscode-dark hr,
    .vscode-dark table > tbody > tr + tr > td {
        border-color: rgba(255, 255, 255, 0.18);
    }
    
    .vscode-light blockquote,
    .vscode-dark blockquote {
        background: rgba(127, 127, 127, 0.1);
        border-color: rgba(0, 122, 204, 0.5);
    }
    
    .vscode-high-contrast blockquote {
        background: transparent;
        border-color: #fff;
    }
    </style>
    
    <style>
    /* Tomorrow Theme */
    /* http://jmblog.github.com/color-themes-for-google-code-highlightjs */
    /* Original theme - https://github.com/chriskempson/tomorrow-theme */
    
    /* Tomorrow Comment */
    .hljs-comment,
    .hljs-quote {
        color: #8e908c;
    }
    
    /* Tomorrow Red */
    .hljs-variable,
    .hljs-template-variable,
    .hljs-tag,
    .hljs-name,
    .hljs-selector-id,
    .hljs-selector-class,
    .hljs-regexp,
    .hljs-deletion {
        color: #c82829;
    }
    
    /* Tomorrow Orange */
    .hljs-number,
    .hljs-built_in,
    .hljs-builtin-name,
    .hljs-literal,
    .hljs-type,
    .hljs-params,
    .hljs-meta,
    .hljs-link {
        color: #f5871f;
    }
    
    /* Tomorrow Yellow */
    .hljs-attribute {
        color: #eab700;
    }
    
    /* Tomorrow Green */
    .hljs-string,
    .hljs-symbol,
    .hljs-bullet,
    .hljs-addition {
        color: #718c00;
    }
    
    /* Tomorrow Blue */
    .hljs-title,
    .hljs-section {
        color: #4271ae;
    }
    
    /* Tomorrow Purple */
    .hljs-keyword,
    .hljs-selector-tag {
        color: #8959a8;
    }
    
    .hljs {
        display: block;
        overflow-x: auto;
        color: #4d4d4c;
        padding: 0.5em;
    }
    
    .hljs-emphasis {
        font-style: italic;
    }
    
    .hljs-strong {
        font-weight: bold;
    }
    </style>
    
    <style>
    /*
     * Markdown PDF CSS
     */
    
     body {
        font-family:  "Meiryo", "Segoe WPC", "Segoe UI", "SFUIText-Light", "HelveticaNeue-Light", sans-serif, "Droid Sans Fallback";
    }
    
    pre {
        background-color: #f8f8f8;
        border: 1px solid #cccccc;
        border-radius: 3px;
        overflow-x: auto;
        white-space: pre-wrap;
        overflow-wrap: break-word;
    }
    
    pre:not(.hljs) {
        padding: 23px;
        line-height: 19px;
    }
    
    blockquote {
        background: rgba(127, 127, 127, 0.1);
        border-color: rgba(0, 122, 204, 0.5);
    }
    
    .emoji {
        height: 1.4em;
    }
    
    /* for inline code */
    :not(pre):not(.hljs) > code {
        color: #C9AE75; /* Change the old color so it seems less like an error */
        font-size: inherit;
    }
    
    /* Page Break : use <div class="page"/> to insert page break
    -------------------------------------------------------- */
    .page {
        page-break-after: always;
    }
    
    </style>
    
    </head>
    <body>
    <h2 id="%E7%BB%83%E4%B9%A0%E8%AE%A1%E7%AE%97%E7%A4%BE%E4%BF%9D%E5%92%8C%E4%BD%8F%E6%88%BF%E5%85%AC%E7%A7%AF%E9%87%91%EF%BC%9A">练习计算社保和住房公积金：</h2>
    <h3 id="%E7%A4%BE%E4%BC%9A%E4%BF%9D%E9%99%A9%E5%92%8C%E4%BD%8F%E6%88%BF%E5%85%AC%E7%A7%AF%E9%87%91">社会保险和住房公积金</h3>
    <p>社会保险的主要项目包括养老保险、医疗保险、失业保险、工伤保险、生育保险。</p>
    <h4 id="%E4%BA%94%E9%99%A9">五险:</h4>
    <ul>
    <li>养老</li>
    <li>失业</li>
    <li>工伤</li>
    <li>医疗</li>
    <li>生育</li>
    </ul>
    <h4 id="%E4%B8%80%E9%87%91">一金:</h4>
    <ul>
    <li>公积金</li>
    </ul>
    <h4 id="2016%E5%B9%B4%E5%BA%A6%E5%8C%97%E4%BA%AC%E5%B8%82%E8%81%8C%E5%B7%A5%E6%9C%88%E5%B9%B3%E5%9D%87%E5%B7%A5%E8%B5%84%E4%B8%BA7706%E5%85%83">2016年度北京市职工月平均工资为7706元</h4>
    <h5 id="%E7%A4%BE%E4%BF%9D%E5%9F%BA%E6%95%B0%E4%B8%BA%E6%AF%8F%E4%B8%AA%E4%BA%BA%E7%BC%B4%E7%BA%B3%E7%A4%BE%E4%BF%9D%E7%9A%84%E5%9F%BA%E5%87%86%E6%95%B0%EF%BC%9A">社保基数为每个人缴纳社保的基准数：</h5>
    <ul>
    <li>最小值为上年月平均工资的40%</li>
    <li>最大值为上年月平均工资的300%</li>
    </ul>
    <h4 id="%E7%BC%B4%E8%B4%B9%E6%AF%94%E4%BE%8B">缴费比例:</h4>
    <table>
    <thead>
    <tr>
    <th style="text-align:center">项目</th>
    <th style="text-align:center">个人缴纳比例</th>
    <th style="text-align:center">单位缴纳比例</th>
    </tr>
    </thead>
    <tbody>
    <tr>
    <td style="text-align:center">养老保险：</td>
    <td style="text-align:center">8%</td>
    <td style="text-align:center">19%</td>
    </tr>
    <tr>
    <td style="text-align:center">失业(城镇户口)</td>
    <td style="text-align:center">0.2%</td>
    <td style="text-align:center">0.8%</td>
    </tr>
    <tr>
    <td style="text-align:center">失业(农村户口)</td>
    <td style="text-align:center">0.0%</td>
    <td style="text-align:center">0.8%</td>
    </tr>
    <tr>
    <td style="text-align:center">工伤保险</td>
    <td style="text-align:center">0%</td>
    <td style="text-align:center">0.5%</td>
    </tr>
    <tr>
    <td style="text-align:center">生育保险</td>
    <td style="text-align:center">0%</td>
    <td style="text-align:center">0.8%</td>
    </tr>
    <tr>
    <td style="text-align:center">医疗保险</td>
    <td style="text-align:center">2%+3元</td>
    <td style="text-align:center">10%</td>
    </tr>
    <tr>
    <td style="text-align:center">公积金</td>
    <td style="text-align:center">12%</td>
    <td style="text-align:center">12%</td>
    </tr>
    </tbody>
    </table>
    <h2 id="%E7%BB%83%E4%B9%A0%EF%BC%9A">练习：</h2>
    <ul>
    <li>输入一个人的北京社保基数(3082~23118)元：</li>
    <li>计算这个人的五险一金</li>
    </ul>
    <h2 id="%E8%A6%81%E6%B1%82">要求:</h2>
    <ul>
    <li>写一个Django服务器程序，主用户通过浏览器地址栏输入 <a href="http://127.0.0.1:8000/shebao">http://127.0.0.1:8000/shebao</a> 进入页面后 输入 您的社保基数并选择城镇户口还是农村户口后，点击提交,打印出各项要缴纳的费用明细,个人缴费小计,公司缴费小计,每月社保纳入国家的金额总和</li>
    </ul>
    <h2 id="%E5%8F%82%E8%80%83%E7%95%8C%E9%9D%A2%E5%A6%82%E4%B8%8B">参考界面如下:</h2>
    <form action="/shebao" method='POST'>
        <p>
        请输入基数 <input name="salary" type=input>
        </p>
        <p>
        请输选择户口
        <select name="household">
            <option value ="1">城镇户口</option>
            <option value ="0">农村户口</option>
        </select>
        </p>
        <input type="submit">
    </form>
    """

    html_end = """
        </body>
    </html>
    
    """

    if request.method == 'GET':
        html = html_head + html_end
        return HttpResponse(html)
    elif request.method == 'POST':
        salary = int(request.POST.get('salary'))
        household = int(request.POST.get('household'))

        html_content = """
                <ul>
            <li>结果
            <table>
            <thead>
            <tr>
            <th style="text-align:center">项目</th>
            <th style="text-align:center">个人缴纳</th>
            <th style="text-align:center">单位缴纳</th>
            </tr>
            </thead>
            <tbody>
            <tr>
            <td style="text-align:center">养老保险：</td>
            <td style="text-align:center">""" + str(salary * 0.08) + """元</td>
            <td style="text-align:center">""" + str(salary * 0.19) + """元</td>
            </tr>
            <tr>
            <td style="text-align:center">失业</td>
            <td style="text-align:center">""" + str(salary * (0.002 if household == 1 else 0.0)) + """元</td>
            <td style="text-align:center">""" + str(salary * 0.008) + """元</td>
            </tr>
            <tr>
            <td style="text-align:center">工伤保险</td>
            <td style="text-align:center">""" + str(salary * 0) + """元</td>
            <td style="text-align:center">""" + str(salary * 0.005) + """元</td>
            </tr>
            <tr>
            <td style="text-align:center">生育保险</td>
            <td style="text-align:center">""" + str(salary * 0) + """元</td>
            <td style="text-align:center">""" + str(salary * 0.008) + """元</td>
            </tr>
            <tr>
            <td style="text-align:center">医疗保险</td>
            <td style="text-align:center">""" + str((salary * 0.02 + 3)) + """元</td>
            <td style="text-align:center">""" + str(salary * 0.12) + """元</td>
            </tr>
            <tr>
            <td style="text-align:center">公积金</td>
            <td style="text-align:center">""" + str(salary * 0.12) + """元</td>
            <td style="text-align:center">""" + str(salary * 0.12) + """元</td>
            </tr>
            <tr>
            <td style="text-align:center">个人缴费总和</td>
            <td style="text-align:center">xxx元</td>
            <td style="text-align:center"></td>
            </tr>
            <tr>
            <td style="text-align:center">公司缴费总和</td>
            <td style="text-align:center">xxx元</td>
            <td style="text-align:center"></td>
            </tr>
            <tr>
            <td style="text-align:center">纳入国家全额总和</td>
            <td style="text-align:center">xxx 元</td>
            <td style="text-align:center"></td>
            </tr>
            </tbody>
            </table>
            </li>
            </ul>


            """
        return HttpResponse(html_head+html_content+html_end)
